package com.example.project.projectspringcloud.service.video;

import com.example.project.projectspringcloud.common.OperationException;
import com.example.project.projectspringcloud.entity.Page;
import com.example.project.projectspringcloud.entity.video.Video;

import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.util.List;
import java.util.Set;

public interface VideoService {

    /**
     * 获取单条信息
     * ==============================================================================
     *
     * @param video
     * @return
     */
    Video get(Video video);

    /**
     * 获取列表信息
     * ==============================================================================
     *
     * @param page
     * @param video
     * @return
     */
    List<Video> list(Page page, Video video);

    /**
     * 通过ID批量删除
     * ==============================================================================
     *
     * @param id
     * @return
     */
    boolean delete(Integer[] id);

    /**
     * 保存
     * ==============================================================================
     *
     * @param video
     * @return
     * @throws OperationException
     */
    boolean save(Video video) throws OperationException;

    /**
     * 修改显示状态
     * ==============================================================================
     *
     * @param video
     * @return
     * @throws OperationException
     */
    boolean changeshow(Video video) throws OperationException;

    /**
     * 增加视频播放量
     * ==============================================================================
     *
     * @param videoId
     * @return
     * @throws OperationException
     */
    int count(Integer videoId) throws OperationException;

    /**
     * 通过ids获取全部
     * ==============================================================================
     *
     * @param ids
     * @return
     */
    List<Video> list(Set<Integer> ids, Integer type);

    /**
     * 刷新指定视频
     * @param idarr
     * @return
     */
    void refresh(Integer[] idarr) throws Exception;
}
